package com.example.demo.config;

import com.example.demo.config.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.Arrays;
import java.util.List;

/**
 * @Description: java类作用描述
 * @Author: wuyuanhao
 * @CreateDate: 2020/8/12 22:25
 * @UpdateUser: wuyuanhao
 * @UpdateDate: 2020/8/12 22:25
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */


@Configuration
public class WebConfigurer implements WebMvcConfigurer {

    private LoginInterceptor loginInterceptor=new LoginInterceptor();

    // 这个方法是用来配置静态资源的，比如html，js，css，等等
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    }

    // 这个方法用来注册拦截器，我们自己写好的拦截器需要通过这里添加注册才能生效
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        final List<String> EXCLUDE_PATH= Arrays.asList("/","/login","/register","/css/**","/js/**","/email_templates/**","/font-awesome/**","/fonts/**"
                ,"/img/**","/js/**","/layer/**","/locales/**","/pdf/**","/user/login");
        // addPathPatterns("/**") 表示拦截所有的请求，
        // excludePathPatterns("/login", "/register") 表示除了登陆与注册之外，因为登陆注册不需要登陆也可以访问
        registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns(EXCLUDE_PATH);
    }
}
